.TH "/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/tortellaprotocol.h" 3 "19 Jun 2008" "Version 0.1" "TorTella" \" -*- nroff -*-
.ad l
.nh
.SH NAME
/media/store/Informatica/C_C++/Projects_Linux/TorTella_gnu/src/tortellaprotocol.h \- 
.SH SYNOPSIS
.br
.PP
\fC#include <string.h>\fP
.br
\fC#include <stdio.h>\fP
.br
\fC#include <stdlib.h>\fP
.br
\fC#include <time.h>\fP
.br
\fC#include 'common.h'\fP
.br
\fC#include 'utils.h'\fP
.br

.SS "Strutture dati"

.in +1c
.ti -1c
.RI "struct \fBtortella_header\fP"
.br
.RI "\fIstruttura dati dove vengono memorizzati rispettivamente l'id univoco del pacchetto, il descrittore del pacchetto,l'id del servente che invia il pacchetto, l'id del ricevente, il timestamp e la relativa lunghezza sia del descrittore che del campo dati. \fP"
.ti -1c
.RI "struct \fBping_desc\fP"
.br
.RI "\fIstruttura dati per il pacchetto di tipo PING, in cui viene memorizzato lo status dell'utente al momento dell'invio del pacchetto \fP"
.ti -1c
.RI "struct \fBlist_desc\fP"
.br
.RI "\fIstruttura dati per il pacchetto LIST, in cui viene memorizzato il valore del TTL e dell' HOPS, e l'ID della \fBchat\fP di cui si richiede la lista degli utenti presenti \fP"
.ti -1c
.RI "struct \fBlisthits_desc\fP"
.br
.RI "\fIstruttura dati per il pacchetto di risposta al LIST, in cui sono salvati gli stessi dati contenuti nella struttura \fBlist_desc\fP con aggiunta del numero di utenti connessi alla \fBchat\fP, di cui era stata richiesta la lista degli users \fP"
.ti -1c
.RI "struct \fBjoin_desc\fP"
.br
.RI "\fIstruttura dati per il pacchetto di join ad una \fBchat\fP. \fP"
.ti -1c
.RI "struct \fBleave_desc\fP"
.br
.RI "\fIstruttura dati per l'invio del pacchetto LEAVE ad una \fBchat\fP. \fP"
.ti -1c
.RI "struct \fBmessage_desc\fP"
.br
.RI "\fIData +-----+ | msg | +-----+. \fP"
.ti -1c
.RI "struct \fBsearch_desc\fP"
.br
.RI "\fIstruct per il flooding del pacchetto SEARCH. \fP"
.ti -1c
.RI "struct \fBsearchhits_desc\fP"
.br
.RI "\fIstruct per l'invio del pacchetto SEARCHHITS. \fP"
.ti -1c
.RI "struct \fBbye_desc\fP"
.br
.RI "\fIstruttura usata per segnalare la disconnessione dalla rete tortella. \fP"
.ti -1c
.RI "struct \fBtortella_packet\fP"
.br
.RI "\fITortella Packet +--------+------------+------+ | Header | Descriptor | Data | +--------+------------+------+. \fP"
.in -1c
.SS "Definizioni"

.in +1c
.ti -1c
.RI "#define \fBGET_PING\fP(packet)   ((\fBping_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_JOIN\fP(packet)   ((\fBjoin_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_LEAVE\fP(packet)   ((\fBleave_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_MESSAGE\fP(packet)   ((\fBmessage_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_SEARCH\fP(packet)   ((\fBsearch_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_SEARCHHITS\fP(packet)   ((\fBsearchhits_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_LIST\fP(packet)   ((\fBlist_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_LISTHITS\fP(packet)   ((\fBlisthits_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBGET_BYE\fP(packet)   ((\fBbye_desc\fP*)packet->desc)"
.br
.ti -1c
.RI "#define \fBPING_ID\fP   0x01"
.br
.RI "\fIDescriptor ID. \fP"
.ti -1c
.RI "#define \fBLIST_ID\fP   0x03"
.br
.ti -1c
.RI "#define \fBLISTHITS_ID\fP   0x04"
.br
.ti -1c
.RI "#define \fBJOIN_ID\fP   0x05"
.br
.ti -1c
.RI "#define \fBLEAVE_ID\fP   0x06"
.br
.ti -1c
.RI "#define \fBMESSAGE_ID\fP   0x07"
.br
.ti -1c
.RI "#define \fBSEARCH_ID\fP   0x09"
.br
.ti -1c
.RI "#define \fBSEARCHHITS_ID\fP   0x10"
.br
.ti -1c
.RI "#define \fBBYE_ID\fP   0x11"
.br
.ti -1c
.RI "#define \fBCLOSE_ID\fP   0x12"
.br
.ti -1c
.RI "#define \fBONLINE_ID\fP   0x80"
.br
.RI "\fIStatus ID. \fP"
.ti -1c
.RI "#define \fBBUSY_ID\fP   0x81"
.br
.ti -1c
.RI "#define \fBAWAY_ID\fP   0x82"
.br
.in -1c
.SS "Ridefinizioni di tipo (typedef)"

.in +1c
.ti -1c
.RI "typedef struct \fBtortella_header\fP \fBtortella_header\fP"
.br
.ti -1c
.RI "typedef struct \fBping_desc\fP \fBping_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBlist_desc\fP \fBlist_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBlisthits_desc\fP \fBlisthits_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBjoin_desc\fP \fBjoin_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBleave_desc\fP \fBleave_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBmessage_desc\fP \fBmessage_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBsearch_desc\fP \fBsearch_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBsearchhits_desc\fP \fBsearchhits_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBbye_desc\fP \fBbye_desc\fP"
.br
.ti -1c
.RI "typedef struct \fBtortella_packet\fP \fBtortella_packet\fP"
.br
.in -1c
.SS "Funzioni"

.in +1c
.ti -1c
.RI "char * \fBtortella_bin_to_char\fP (\fBtortella_packet\fP *packet, \fBu_int4\fP *len)"
.br
.RI "\fIHa il compito di eseguire il parser del pacchetto tortella. \fP"
.ti -1c
.RI "\fBtortella_packet\fP * \fBtortella_char_to_bin\fP (char *packet)"
.br
.RI "\fISvolge le funzionalita' di parser inverso rispetto alla funzione tortella_bin_to_char. \fP"
.ti -1c
.RI "void \fBprint_packet\fP (\fBtortella_packet\fP *packet)"
.br
.RI "\fIfunzione adibita alla stampa ordinata di tutte le informazioni contenute nella struttura dati \fBtortella_packet\fP, ricevuta come parametro d'input. \fP"
.ti -1c
.RI "\fBtortella_packet\fP * \fBtortella_create_packet\fP (\fBtortella_header\fP *header, char *desc, char *data)"
.br
.RI "\fIfunzione che si occupa della creazione del pacchetto tortella. \fP"
.ti -1c
.RI "\fBtortella_header\fP * \fBtortella_create_header\fP (\fBu_int8\fP id, \fBu_int4\fP desc_id, \fBu_int8\fP sender_id, \fBu_int8\fP recv_id, \fBu_int4\fP desc_len, \fBu_int4\fP data_len)"
.br
.RI "\fIfunzione che si occupa della creazione della struttura dati \fBtortella_header\fP e del relativo setting dei vari campi dati contenutti nella struttura stessa. \fP"
.ti -1c
.RI "\fBtortella_packet\fP * \fBtortella_create_packet_header\fP (\fBu_int8\fP id, \fBu_int4\fP desc_id, \fBu_int8\fP sender_id, \fBu_int8\fP recv_id, \fBu_int4\fP desc_len, \fBu_int4\fP data_len, char *desc, char *data)"
.br
.RI "\fIfunzione che sioccupa della creazione contemporanea sia della struttura dati relativa all'header del pacchetto, sia della struttura dati relativo al l'intero pacchetto tortella. \fP"
.ti -1c
.RI "\fBtortella_header\fP * \fBtortella_get_header\fP (const char *buffer)"
.br
.RI "\fIfunzione che ritorna il puntatore all'header del pacchetto, facendo un casting del buffer, il quale contiene come dati iniziali quelli relativi all'header. \fP"
.ti -1c
.RI "char * \fBtortella_get_desc\fP (const char *buffer)"
.br
.ti -1c
.RI "char * \fBtortella_get_data\fP (const char *buffer)"
.br
.in -1c
.SH "Documentazione delle definizioni"
.PP 
.SS "#define AWAY_ID   0x82"
.PP
Definizione alla linea 52 del file tortellaprotocol.h.
.SS "#define BUSY_ID   0x81"
.PP
Definizione alla linea 51 del file tortellaprotocol.h.
.SS "#define BYE_ID   0x11"
.PP
Definizione alla linea 46 del file tortellaprotocol.h.
.SS "#define CLOSE_ID   0x12"
.PP
Definizione alla linea 47 del file tortellaprotocol.h.
.SS "#define GET_BYE(packet)   ((\fBbye_desc\fP*)packet->desc)"
.PP
Definizione alla linea 35 del file tortellaprotocol.h.
.SS "#define GET_JOIN(packet)   ((\fBjoin_desc\fP*)packet->desc)"
.PP
Definizione alla linea 28 del file tortellaprotocol.h.
.SS "#define GET_LEAVE(packet)   ((\fBleave_desc\fP*)packet->desc)"
.PP
Definizione alla linea 29 del file tortellaprotocol.h.
.SS "#define GET_LIST(packet)   ((\fBlist_desc\fP*)packet->desc)"
.PP
Definizione alla linea 33 del file tortellaprotocol.h.
.SS "#define GET_LISTHITS(packet)   ((\fBlisthits_desc\fP*)packet->desc)"
.PP
Definizione alla linea 34 del file tortellaprotocol.h.
.SS "#define GET_MESSAGE(packet)   ((\fBmessage_desc\fP*)packet->desc)"
.PP
Definizione alla linea 30 del file tortellaprotocol.h.
.SS "#define GET_PING(packet)   ((\fBping_desc\fP*)packet->desc)"
.PP
Definizione alla linea 27 del file tortellaprotocol.h.
.SS "#define GET_SEARCH(packet)   ((\fBsearch_desc\fP*)packet->desc)"
.PP
Definizione alla linea 31 del file tortellaprotocol.h.
.SS "#define GET_SEARCHHITS(packet)   ((\fBsearchhits_desc\fP*)packet->desc)"
.PP
Definizione alla linea 32 del file tortellaprotocol.h.
.SS "#define JOIN_ID   0x05"
.PP
Definizione alla linea 41 del file tortellaprotocol.h.
.SS "#define LEAVE_ID   0x06"
.PP
Definizione alla linea 42 del file tortellaprotocol.h.
.SS "#define LIST_ID   0x03"
.PP
Definizione alla linea 39 del file tortellaprotocol.h.
.SS "#define LISTHITS_ID   0x04"
.PP
Definizione alla linea 40 del file tortellaprotocol.h.
.SS "#define MESSAGE_ID   0x07"
.PP
Definizione alla linea 43 del file tortellaprotocol.h.
.SS "#define ONLINE_ID   0x80"
.PP
Status ID. 
.PP
Definizione alla linea 50 del file tortellaprotocol.h.
.SS "#define PING_ID   0x01"
.PP
Descriptor ID. 
.PP
Definizione alla linea 38 del file tortellaprotocol.h.
.SS "#define SEARCH_ID   0x09"
.PP
Definizione alla linea 44 del file tortellaprotocol.h.
.SS "#define SEARCHHITS_ID   0x10"
.PP
Definizione alla linea 45 del file tortellaprotocol.h.
.SH "Documentazione delle ridefinizioni di tipo (typedef)"
.PP 
.SS "typedef struct \fBbye_desc\fP \fBbye_desc\fP"
.PP
Definizione alla linea 208 del file tortellaprotocol.h.
.SS "typedef struct \fBjoin_desc\fP \fBjoin_desc\fP"
.PP
Definizione alla linea 136 del file tortellaprotocol.h.
.SS "typedef struct \fBleave_desc\fP \fBleave_desc\fP"
.PP
Definizione alla linea 152 del file tortellaprotocol.h.
.SS "typedef struct \fBlist_desc\fP \fBlist_desc\fP"
.PP
Definizione alla linea 98 del file tortellaprotocol.h.
.SS "typedef struct \fBlisthits_desc\fP \fBlisthits_desc\fP"
.PP
Definizione alla linea 113 del file tortellaprotocol.h.
.SS "typedef struct \fBmessage_desc\fP \fBmessage_desc\fP"
.PP
Definizione alla linea 169 del file tortellaprotocol.h.
.SS "typedef struct \fBping_desc\fP \fBping_desc\fP"
.PP
Definizione alla linea 86 del file tortellaprotocol.h.
.SS "typedef struct \fBsearch_desc\fP \fBsearch_desc\fP"
.PP
Definizione alla linea 189 del file tortellaprotocol.h.
.SS "typedef struct \fBsearchhits_desc\fP \fBsearchhits_desc\fP"
.PP
Definizione alla linea 201 del file tortellaprotocol.h.
.SS "typedef struct \fBtortella_header\fP \fBtortella_header\fP"
.PP
Definizione alla linea 74 del file tortellaprotocol.h.
.SS "typedef struct \fBtortella_packet\fP \fBtortella_packet\fP"
.PP
Definizione alla linea 225 del file tortellaprotocol.h.
.SH "Documentazione delle funzioni"
.PP 
.SS "void print_packet (\fBtortella_packet\fP * packet)"
.PP
funzione adibita alla stampa ordinata di tutte le informazioni contenute nella struttura dati \fBtortella_packet\fP, ricevuta come parametro d'input. 
.PP
Definizione alla linea 75 del file tortellaprotocol.c.
.SS "char* tortella_bin_to_char (\fBtortella_packet\fP * packet, \fBu_int4\fP * len)"
.PP
Ha il compito di eseguire il parser del pacchetto tortella. 
.PP
In paritcolare prende in input il pacchetto, memorizzato nella sua struttura dati, e restituisce tutto il suo contenuto in un buffer di caratteri. Inoltre il parametro len ritorna la lunghezza di tale buffer. 
.PP
Si posiziona all'inizio del campo data 
.PP
Definizione alla linea 25 del file tortellaprotocol.c.
.SS "\fBtortella_packet\fP* tortella_char_to_bin (char * packet)"
.PP
Svolge le funzionalita' di parser inverso rispetto alla funzione tortella_bin_to_char. 
.PP
La procedura riceve come parametro il buffer, contenente i dati, i quali vengono memorizzati nella struttura dati \fBtortella_packet\fP. 
.PP
Definizione alla linea 53 del file tortellaprotocol.c.
.SS "\fBtortella_header\fP* tortella_create_header (\fBu_int8\fP id, \fBu_int4\fP desc_id, \fBu_int8\fP sender_id, \fBu_int8\fP recv_id, \fBu_int4\fP desc_len, \fBu_int4\fP data_len)"
.PP
funzione che si occupa della creazione della struttura dati \fBtortella_header\fP e del relativo setting dei vari campi dati contenutti nella struttura stessa. 
.PP
Definizione alla linea 122 del file tortellaprotocol.c.
.SS "\fBtortella_packet\fP* tortella_create_packet (\fBtortella_header\fP * header, char * desc, char * data)"
.PP
funzione che si occupa della creazione del pacchetto tortella. 
.PP
La procedura si occupa dell'allocazione dello spazio di memoria per la struttura dati \fBtortella_packet\fP e del relativo setting dei campi con i valori contenuti nei parametri d'input. 
.PP
Definizione alla linea 108 del file tortellaprotocol.c.
.SS "\fBtortella_packet\fP* tortella_create_packet_header (\fBu_int8\fP id, \fBu_int4\fP desc_id, \fBu_int8\fP sender_id, \fBu_int8\fP recv_id, \fBu_int4\fP desc_len, \fBu_int4\fP data_len, char * desc, char * data)"
.PP
funzione che sioccupa della creazione contemporanea sia della struttura dati relativa all'header del pacchetto, sia della struttura dati relativo al l'intero pacchetto tortella. 
.PP
In realta' tale funzione contiene la chiamata alla funzione tortella_create_header e tortella_create_packet. 
.PP
Definizione alla linea 140 del file tortellaprotocol.c.
.SS "char* tortella_get_data (const char * buffer)"
.PP
Definizione alla linea 170 del file tortellaprotocol.c.
.SS "char* tortella_get_desc (const char * buffer)"
.PP
Definizione alla linea 160 del file tortellaprotocol.c.
.SS "\fBtortella_header\fP* tortella_get_header (const char * buffer)"
.PP
funzione che ritorna il puntatore all'header del pacchetto, facendo un casting del buffer, il quale contiene come dati iniziali quelli relativi all'header. 
.PP
Definizione alla linea 152 del file tortellaprotocol.c.
.SH "Autore"
.PP 
Generato automaticamente da Doxygen per TorTella a partire dal codice sorgente.
